Skip to content

Symbolic ODE solver #1572

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 19 commits into
base: master
Choose a base branch
from

Conversation

LordOfFrogs
Copy link

Created basic solvers for 1st order separable equations and linear continuous dynamical systems with real eigenvalues. I'm sure there are better ways to do a lot of this, as I am still familiarizing myself with Symbolics.jl and Julia in general.

Implemented symbolic eigenvalue and eigenvector decomposition because LinearAlgebra.jl functions produced floating-point inaccuracies that messed up rationals.

Also, not currently incorporated into Symbolics.jl yet, just a standalone file added.

@LordOfFrogs LordOfFrogs changed the title [WIP] Symbolic ODE solver Symbolic ODE solver Jul 18, 2025
@LordOfFrogs
Copy link
Author

After updating the documentation, this should be ready to merge. It now includes methods for solving symbolic ODEs via:

  • first-order integrating factor
  • constant coefficient homogeneous solutions (can handle repeated and complex characteristic roots)
  • exponential and resonant response formula particular solutions (for any linear combination of exp, sin, cos, or exp times sin or cos (e.g. e^2t * cos(-t) + e^-3t + sin(5t)))
  • method of undetermined coefficients particular solutions
  • linear combinations of above particular solutions
  • Clairaut's equation
  • Bernoulli equations

Additionally, it can now parse symbolic expressions into LinearODE or use them directly to solve.

Solving continuous dynamical systems with systems.jl still appears to be finicky at times, due to floating-point inaccuracies and the handling of complex numbers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant